A known computer file (/var/yp/binding/‘domainname’/ypservers) contains a list of internet protocol (IP) addresses for network information servers (“NIS”) on each line of the file. NIS clients perform a sequential search, line by line, from top to bottom, attempting to access each server until successful communication is established. The client is then “bound” to the server until communication is lost.
This current method is inefficient for several reasons. Each server is positioned so that communication is attempted despite the server's availability or its abilities in terms of workload. This method of NIS selection is detrimental to system and network performance since NIS servers are used as a repository for such files as “/etc/hosts,” “/etc/services/,” “/etc/passwd” and “etc/group.” Furthermore, once communication with the server is lost, the search for another compatible server begins again sequentially from top to bottom of the list without recollection of the last successful server. This top to bottom search for a successful server causes extreme delays in establishing server communication, especially when the only available server may be at the bottom of the moderate to long server list.
While there have been attempts to make the NIS server search more productive through environmental variables, these variables only partially address the NIS server problem, and are known and used by a only minority of NIS users. These environmental variables are: YPTIMEOUT, YPBIND_SKIP, and YPBIND_MAXWAIT. YPTIMEOUT=n represents the number of seconds (n) allowed for a reply before a timeout-move occurs on the NIS in the ypservers file. YPBIND_SKIP, causes the client to skip the last server it was bound to in the ypservers file, but the search for a server in the ypservers file remains sequential from top to bottom. YPBIND_SKIP is not always effective unless the last bound server is the first server in the list, or if there is only one listed server. Otherwise, successful communication can occur with a different server listed above the server that is to be skipped. In such cases, the client may never reach the skipped server, causing the logic associated with YPBIND_SKIP to be wasted and inefficient. YPPBIND_MAXWAIT=n represents the number of seconds (n) the NIS client will wait before abandoning the search. Once the timeout is exceeded, the client will behave as if no NIS is available for binding. Therefore, a need exists for a way to decrease a client's search time for finding an NIS server and to eliminate a need for YPBIND_SKIP.